This application is based upon and claims priority of Japanese Patent Application No. 11-088073, filed Mar. 30, 1999, the contents being incorporated herein by reference.
1. Field of the Invention
The present invention relates to a file control device to control an external storage device in a data processing system. More particularly, the present invention relates to a file control device suitable for controlling multiple disk storage devices.
2. Description of the Related Art
The use of magnetic disk devices and other types of storage devices to store data for computer systems is well-known. Storage devices inherently have physical storage contents, which physical storage contents may be used as a logical storage device or as multiple logical storage devices. In particular, in some computer systems, a single physical storage device may be used as a single logical storage device. In other computer systems, a single physical storage device may be used as multiple logical storage devices. Conversely, multiple physical storage devices may also be used as a single logical storage device.
For example, a file control device for a computer system may perform emulation to provide a configuration which makes it look like there are multiple small capacity logical storage devices in a large capacity physical storage device. Furthermore, a file control device may perform emulation to provide a configuration which makes it look like there is one large capacity logical storage device made up of multiple small capacity storage devices. The above-described emulation is performed when the number of physical storage devices is increased to prevent changes in the software which accesses the physical storage devices.
When a single physical storage device is used as a single logical storage device, the capacity of the logical storage device also exists in the capacity of the physical storage device. Therefore, every time that the capacity of a physical storage device is changed, the software which controls access must be revised. If the software were not revised, the software would not be capable of accessing a storage device with a new logical capacity. New types of physical storage devices are being developed every day, and because of the great many varieties of physical storage devices which exist, revising the software to correspond to the physical storage device has become a serious problem.
File control devices logically emulate devices with a specific storage capacity. If control of the logical storage device and control of the physical storage device are separated, then no problems will occur even when a physical storage device with a new capacity is connected to the file control device. Software which controls access to storage devices can handle new storage devices in the same way as the prior art devices. This is advantageous in that the software does not need to be revised.
Therefore, as the capacity of the physical storage device increases, the method whereby multiple logical storage devices are emulated in a single physical storage device has come into widespread use. In emulating the multiple logical storage devices, the software focuses on accessing the logical storage devices. As a result, the software sometimes simultaneously accesses different logical storage devices which are allocated to a single physical storage device. When this happens, a single logical storage device is read and written simultaneously and it must wait for access to other logical storage devices.
In a computer system which uses a large-scale computer, only a single access to a single storage device can be issued at one time. As a result, when a physical storage device and a logical storage device coincide, waiting for access to other logical storage devices does not occur. Therefore, when multiple logical storage devices are configured in a single physical storage device (that is, when a physical storage device and a logical storage device are separated), it looks as if the performance relative to access from the server has declined.
In order to alleviate the decline in access performance, file control devices are typically provided with a disk cache which makes it possible to make multiple accesses simultaneously. A portion of the contents of the logical storage device are stored in the disk cache.
If it is assumed, for example, that two logical storage devices are allocated to a physical storage device, and if the various data which are retained in the two logical storage devices are stored in the disk cache, then either of the data can be accessed simultaneously. However, if data which are retained in one logical storage device are stored in disk cache, and data which are retained in the other logical storage device are not stored in disk cache, then one set of data is transferred from disk cache and the other set of data, which is not stored in disk cache, is transferred from the physical disk.
As described above, by using disk cache, the server increases the possibility of simultaneously accessing data which are retained in multiple logical devices allocated to a single physical storage device. Therefore, when data read processing and data write processing are generated simultaneously between a certain physical storage device and cache memory, the possibility of simultaneously accessing data which are retained in multiple logical devices increases strikingly. The possibility of access to a single logical storage device also comes to mind.
However, the prior art disk cache control does not take into consideration multiple logical storage devices existing in a single physical storage device. More specifically, according to the prior art disk cache control, only the access frequency relative to the logical storage device is used in monitoring the data in disk cache. However, the access frequency relative to the physical storage device has not been used to monitor the data in disk cache. Therefore, there are times when the original effect cannot be obtained sufficiently in the disk cache by providing cache memory.
This problem will now be described in greater detail with reference to FIG. 9, which is a block diagram of a prior art file access device. As shown in FIG. 9, the prior art file access device includes a storage device 20 having a file control device 30, two Server InterFace Modules (SIFM) 33-1 and 33-2, k Device InterFace Modules (DIFM) 34-1 to 34-k, k physical storage devices 21-1 to 21-k, and two buses 35-1 and 35-2 for access to a cache memory 40. Furthermore, the respective single physical storage devices 21-1 to 21-k are configured of two logical storage devices (50-1, 51-1 to 50-k, 51-k).
A controller 31, which is provided in the file control device 30 of the storage device 20, comprises a control memory 41. A cache memory monitoring table 42 is stored in the control memory 41. The cache memory monitoring table 42 includes information indicating a relationship between a position (block) inside the storage device 20 in which data is stored and a position inside the cache memory 40 where a copy of that data is stored.
FIG. 10 is a diagram of a prior art cache memory monitoring table 42 used to monitor the data stored in cache memory 40. The cache memory monitoring table 42 is used to monitor block units. As described herein, a xe2x80x9cblockxe2x80x9d is a copy of part of the data retained in the storage device 20. The cache memory monitoring table 42 has, for example, a structure in which a block entry 60 is arranged in order of priority.
One well-known method of data substitution in cache memory 40 is the xe2x80x9cleast recently usedxe2x80x9d (LRU) method. In accordance with the LRU method, a control system gives the highest priority to the data that has been most recently accessed, and gives the lowest priority to the data for which the most time has elapsed since it was last accessed.
As shown in FIGS. 9 and 10, the data in a block E of logical storage device 11 (50-1) at the left of FIG. 9 is newly stored in cache memory 40. In this case, as shown in FIG. 10, a new entry 60-1 which handles the block E is added to the cache memory monitoring table 42. Thus, the data in block A for logical storage device 11 (50-1) which corresponds to entry 60-2 with the lowest priority are ejected from cache memory 40 (in FIG. 10).
As described herein, the terminology xe2x80x9cdata are ejected from cache memoryxe2x80x9d means that the cache memory 40 is placed in a mode wherein the relevant data are logically not stored in the cache memory 40. For example, this includes the case where the file control device 30 actually recognizes the relevant area as a space area with the data itself being left in cache memory 40 as is.
The ejection of data from cache memory 40 occurs not only when the storage space in cache memory 40 is insufficient. For example, even if storage space is left in cache memory 40, the file control device 30 sometimes performs control so that data are periodically ejected from cache memory 40 to upgrade the overall performance of the storage device.
As shown at the right hand side of FIG. 10, data in block F in the logical storage device 12 (51-1) are stored anew in cache memory 40. In this case, a new entry 60-3, which corresponds to block F, is added to the cache memory monitoring table 42. Thus, entry 60-4, which corresponds to block B in the logical storage device 12 (51-1), is ejected from the cache memory monitoring table 42 (right hand side of FIG. 10).
In the state shown on the right hand side of FIG. 10, both the data in block A in logical storage device 11 (50-1) and the data in block B in logical storage device 12 (51-1) are in a state where neither of these blocks is stored in the cache memory 40. As described above, the relevant data itself sometimes exists in cache memory 40. However, the file control device 30 recognizes the area in cache memory 40 in which the data is stored as a space area. Therefore, the file control device 30 cannot actually access in the data in cache memory 40. As a result, the data are in a state wherein they are not logically stored in cache memory.
In this case, when simultaneous access to both blocks A and B is required by the server, there is competition for access to the physical storage device 1 (21-1) because both of these blocks require access to the physical storage device (21-1). Therefore, one has to wait for access to either of these blocks until access of the other is completed.
It is an object of the present invention to overcome the disadvantages noted above and to prevent the performance of cache memory from declining.
Objects and advantages of the present invention are achieved with a file control device, comprising a storage device to store data, the storage device including a plurality of memory devices; a cache memory, connected to the plurality of memory devices, to store a portion of the data stored in the storage device; and a control device to control transfer of data between the storage device and the cache memory, wherein the control device controls data transfer between the storage device and the cache memory according to cache data information indicating a relationship between a location in the storage device where the portion of the data is stored and a location in the cache memory where the portion of the data is to be retained, and according to data priority information indicating a priority rank for the data stored in the cache memory, and according to device priority information indicating a priority rank for the plurality of memory devices connected to the cache memory.
In accordance with embodiments of the present invention, the control device ejects data from the cache memory according to the data having the lowest priority rank in the memory device having the lowest priority based on information indicating the memory device having the lowest priority rank of the plurality of memory devices connected to cache memory, and according to data priority information indicating the lowest priority rank of the data retained in the memory device having the lowest priority rank.
In accordance with embodiments of the present invention, the control device ejects data from the cache memory and adds new data to the cache memory according to the data having the lowest priority rank of the data stored in a memory device other than a memory device where the newly added data are stored, based on the cache data information, the data priority information and the device priority information.
Objects and advantages of the present invention are achieved with a memory system comprising a memory device including a plurality of storage devices to store data in block units; a cache memory connected to the plurality of storage devices to store a portion of the data stored in the plurality of storage devices; and a control device to concurrently monitor the plurality of storage devices and the blocks of data stored in the storage devices to control transfer of data between the storage device-and the cache memory.
In accordance with embodiments of the present invention, the control device assigns a priority rank to the plurality of storage devices and assigns a priority rank to the blocks of data stored in the storage devices to concurrently monitor the storage devices and the blocks of data.
In accordance with embodiments of the present invention, each of the storage devices include a plurality of logical storage devices in which data is stored in block units, and the control device controls ejection of data from the cache memory to maximize the probability that different logical storage devices allocated to the same physical storage device can be simultaneously accessed.
In accordance with embodiments of the present invention, the control device further comprises a cache memory monitoring device to monitor priority of data stored in the cache memory.
In accordance with embodiments of the present invention, the control device may comprise a memory monitoring device to monitor priority of the plurality of storage devices connected to the cache memory; and a data monitoring device to monitor priority of the blocks of data stored in the plurality of storage devices.
In accordance with embodiments of the present invention, the memory monitoring device assigns a highest priority to a storage device which stores data for which access has been requested.
In accordance with embodiments of the present invention, the data monitoring device assigns a highest priority to a block of data for which access has been requested.
In accordance with embodiments of the present invention, the memory monitoring device assigns a priority to a storage device according to frequency of access to the storage devices, and the data monitoring device assigns priority to a block of data according to frequency of access to the blocks of data.
In accordance with embodiments of the present invention, to eject data from the cache memory the memory monitoring device determines the storage device with the lowest priority, and the data monitoring device determines the block of data with the lowest priority which is retained in the storage device having the lowest priority as a block to be ejected.
Objects and advantages of the present invention are achieved with a method of accessing data stored in a memory system including a plurality of storage devices to store blocks of data and a cache memory connected to the plurality of storage devices to store a portion of the data stored in the storage devices, comprising concurrently monitoring the plurality of storage devices and the blocks of data stored in the logical storage devices to control transfer of data between the storage device and the cache memory.
In accordance with embodiments of the present invention, the concurrently monitoring comprises the plurality of storage devices and the blocks of data stored in the logical storage devices comprises monitoring priority of the plurality of storage devices connected to the cache memory; and monitoring priority of the blocks of data stored in the plurality of storage devices.
In accordance with embodiments of the present invention, the method of accessing data may further comprise determining a storage device having the lowest priority; determining a block of data having a lowest priority of the blocks of data stored in the storage device having the lowest priority; and ejecting the block of data determined to have the lowest priority of the blocks of data stored in the storage device having the lowest priority.